export const regexp = {
    dateString: /^(1[0-2]|0?[1-9])\/(3[01]|[12][0-9]|0?[1-9])\/(?:[0-9]{2})?[0-9]{2}$/,
    // 手机号码
    tel: /^1[3|4|5|6|7|8|9]\d{9}$/,
    // 电话号码
    phone: /[0-9]{3,4}-[0-9]{7,8}$|^1[3|4|5|6|7|8|9]\d{9}$/,
    // 整数
    int: /^-?[0-9]\d*$/,
    // 数字
    float: /^(-?\d+)(\.\d+)?$/,
    // 特殊字符
    odd: /[^\a-zA-Z0-9\u4e00-\u9FA5\-]/,
    // 金额
    money: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^[0-9]\.[0-9]([0-9])?$)/
};

/**
 * 将 date 转化为指定格式的String
 * 月(M)、日(d)、小时(h/H)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss.S') ==> 2006-07-02 08:09:04.423
 * formatDate(new Date(), 'yyyy-M-d h:m:s.S')      ==> 2006-7-2 8:9:4.18
 * @param date
 * @param fmt
 * @returns String
 */
export function formatDate(date, fmt = 'yyyy-MM-dd') {
    if (!date) {
        return '';
    }
    if (Object.prototype.toString.call(date) !== '[object Date]' || isNaN(date.getTime())) {
        date = new Date(date);
    }
    let o = {
        'M+': date.getMonth() + 1, //月份
        'd+': date.getDate(), //日
        'h+': date.getHours(), //小时
        'm+': date.getMinutes(), //分
        's+': date.getSeconds(), //秒
        'q+': Math.floor((date.getMonth() + 3) / 3), //季度
        'S': date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    for (let k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
        }
    }
    return fmt;
}

// 判断是否为空
export function isEmpty(val) {
    if (typeof val === 'number') {
        return false;
    }
    if (val === null) {
        return true;
    }
    if (typeof val === 'undefined') {
        return true;
    }
    if (val.length === 0) {
        return true;
    }
    return !/[^(^\s*)|(\s*$)]/.test(val);
}
